
#pragma once

#include <string>

#include "technique.h"
#include "demos.h"

using namespace std;

class DQuad : public IMesh {
    ModelBlock::SModel          m_modelData;
    MaterialBlock::SMaterial    m_materialData;

    GLuint  m_vaoId;
    GLuint  m_vbo[3];
    GLuint  m_vIndx;
    GLuint  m_texs[2];
    
    const ModelBlock*       m_uniformModel;
    const MaterialBlock*    m_uniformMaterial;

    GLint   m_Position;
    GLint   m_TexCoords;

public:
    DQuad(const string& file);
    ~DQuad();

    void Draw(const PresentTechnique* pTechnique);
    void AttachUniforms(const UniformMap& uBlocks);
    void MapAttributes(const ProgramsMap& tMap);
    MeshPresentMethod PresentMethod() const;
};
